موضوع : ارائه یک روش تولید خودکار داده های ورودی برای تست جهش
رشته : مهندسی فناوری اطلاعات
استاد راهنما : دکتر بابک شیرازی
زمستان 92
برای رعایت حریم خصوصی نام نگارنده پایان نامه درج نمی شود
(در فایل دانلودی نام نویسنده موجود است)
تکه هایی از متن پایان نامه به عنوان نمونه :
(ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل است)
چکیده
ایده ی اصلی تست جهش براساس استفاده از نقصها (faults) برای شبیه سازی خطاهایی است که برنامه نویسان انجام میدهند. بروز نقصها ممکن است در دو سطح یکپارچگی و در سطح واحد اتفاق بیافتد که در بعضی موارد ممکن است جستجو و یافتن محل نقص دشوار باشد با تزریق نقصها به صورت مجازی میتوان دادهها ورودی مناسب که میتواند وجود آنها را آشکار کند پیدا کرد.
انجام فرآیند تست جهش هزینه بر است این هزینهها به طور کلی از چهار منبع نشات میگیرند که عبارتند از :1- تولید ورودیهای تست 2- زمان کامپایل کد جهش یافته و کد اصلی 3- اجرا کد جهش یافته و اصلی 4- مقایسهی نتایج خروجی برنامهی اصلی با برنامهی جهش یافته. در این پایاننامه برای کاهش هزینهی اول با استفاده از الگوریتم کلونی زنبور تولید دادههای تست را به صورت خودکار انجام دادیم از طرف دیگر از طریق تکنیکهای تزریق بایت کد جاوا هزینه کامپایل را نیز به صفر رساندیم و برای بالا بردن عملکرد سیستم اجرای تست را به صورت موازی انجام دادهایم.
یکی از چالشهای امروز پروژههای نرمافزار، تست است زیرا برخلاف محصولات تولید شده توسط سایر علوم مهندسی، نرمافزار محصولی غیرقابل لمس است از این جهت برای اطمینان از کیفیت، نیاز به صرف هزینه و وقت بیشتر برای تست آن است. تست در حقیقت یکی از اساسیترین روشها برای ارزیابی نرمافزار تحت توسعه است. روشهای سنتی تست نرمافزار، تنها به یافتن بعضی از خطاها[1]بعد از فاز پیادهسازی محدود میشد و از این جهت ریسک وجود خطا در نرمافزار، بعد از تحویل، افزایش می یافت و حتی وجود خطاها در نرمافزار گاهی موجب شکست [2]نرمافزار میشود اما منشاء بخشی از این خطاها در کجاست؟ منشاء بخشی از این خطاها در نقصهایی[3] است که برنامه نویسان به طور غیر عمدی و بر اثر بی دقتی وارد کد برنامه میکنند مانند: کوچکتر از حد نیاز در نظر گرفتن طول یک آرایه، اشتباه در پرانتز گذاری عبارتها، استفادهی نادرست از عملگرهای دودویی و یکانی و … که در صورت شناسایی محل آن در بسیاری از موارد با ایجاد یک تغییر کوچک در کد برنامه قابل اصلاح است اما در صورت عدم اصلاح وجود یک یا چند نقص در برنامه سبب ایجاد یک وضعیت درونی اشتباه در برنامه شود که در برخی از موارد با وارد کردن یک ورودی خاص تحریک شده و ممکن است این وضعیت درونی به یک رفتار بیرونی اشتباه تبدیل شود و حتی در برخی از موارد موجب شکست برنامه شود به عنوان مثال اگر بدن انسان را به یک برنامهی کامپیوتری تشبیه کنیم نقصها در حقیقت عوامل بیماری زا هستند که در یک بدن سالم وارد میشوند و آن را تحت تصرف خود درمیآورند، خطاها مانند یک وضعیت درونی غیر عادی در بدن مانند فشار خون بالا، وجود یک نوع باکتری در خون، بی نظمی در نبض بیمار که پزشکان با کنارهم قرار دادن این علائم تلاش میکنند به علت بیماری پی ببرند، از کار افتادگیها در حقیقت علائم درونی هستند که از حالت نهان و درونی خود خارج شده به طوری که توسط بیمار نیز قابل تشخیص و بیان هستند.